A process execution language enables developers to model work flows as processes that comprise stateful interactions with one or more external services. When execution of a process instance cannot be continued in a current thread, the process instance can be dehydrated, wherein flow states of the process instance can be persisted to a database.
When a process execution engine is ready to execute the process instance again, the stored flow states can be reconstructed (rehydrated) from the database. However, the overhead of interactions with the database can be significant, and the time spent persisting to and restoring from the database often slows down execution time of the process instance.